package com.codeplay.service;

import com.codeplay.entity.ProjectComment;
import com.codeplay.entity.ProjectComment.UserRole;
import java.util.List;

public interface ProjectCommentService {
    ProjectComment createComment(ProjectComment comment);
    ProjectComment updateComment(Long id, String content);
    void deleteComment(Long id);
    ProjectComment getComment(Long id);
    List<ProjectComment> getCommentsByProject(Long projectId);
    List<ProjectComment> getCommentsByTask(Long taskId);
    List<ProjectComment> getCommentsByUser(Long userId);
    List<ProjectComment> getCommentsByProjectAndTask(Long projectId, Long taskId);
    List<ProjectComment> getPendingReviewComments();
    ProjectComment reviewComment(Long id, Long reviewerId, boolean isAppropriate);
    List<ProjectComment> getCommentsByReviewer(Long reviewerId);
    List<ProjectComment> getInappropriateComments();
    List<ProjectComment> getChildComments(Long childUserId);
    List<ProjectComment> getParentVisibleComments(Long projectId);
    void setParentVisibility(Long commentId, boolean visible);
    List<ProjectComment> getCommentsByUserRole(Long userId, UserRole role);
    List<ProjectComment> getSafeCommentsByProject(Long projectId);
    List<ProjectComment> getSafeCommentsByTask(Long taskId);
    List<ProjectComment> getSafeCommentsByUser(Long userId);
    void deleteCommentsByUserAndRole(Long userId, UserRole role);
    void deleteCommentsByProject(Long projectId);
    void deleteCommentsByTask(Long taskId);
} 